Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


sbapp/plyer/platforms/android/stt.py 2.0.0 (cf698d96) Text, 7.46 KB

Tff7b72from T7ee787androidT7ee787.T7ee787runnable Tff7b72import Te6edf3run_on_ui_thread

Tff7b72from T7ee787jnius Tff7b72import Te6edf3autoclass
Tff7b72from T7ee787jnius Tff7b72import Te6edf3java_method
Tff7b72from T7ee787jnius Tff7b72import Te6edf3PythonJavaClass

Tff7b72from T7ee787plyerT7ee787.T7ee787facades Tff7b72import Te6edf3STT
Tff7b72from T7ee787plyerT7ee787.T7ee787platformsT7ee787.T7ee787android Tff7b72import Te6edf3activity

Te6edf3ArrayList Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffjava.util.ArrayListTa5d6ff'Tb4b4b4)
Te6edf3Bundle Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.os.BundleTa5d6ff'Tb4b4b4)
Te6edf3Context Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.content.ContextTa5d6ff'Tb4b4b4)
Te6edf3Intent Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.content.IntentTa5d6ff'Tb4b4b4)
Te6edf3RecognizerIntent Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.speech.RecognizerIntentTa5d6ff'Tb4b4b4)
Te6edf3RecognitionListener Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.speech.RecognitionListenerTa5d6ff'Tb4b4b4)
Te6edf3SpeechRecognizer Tff7b72= Te6edf3autoclassTb4b4b4(Ta5d6ff'Ta5d6ffandroid.speech.SpeechRecognizerTa5d6ff'Tb4b4b4)

Te6edf3SpeechResults Tff7b72= Te6edf3SpeechRecognizerTff7b72.Td2a8ffRESULTS_RECOGNITION


Tff7b72class T56d364SpeechListenerTb4b4b4(Te6edf3PythonJavaClassTb4b4b4)Tb4b4b4:
Te6edf3__javainterfaces__ Tff7b72= Tb4b4b4[Ta5d6ff'Ta5d6ffandroid/speech/RecognitionListenerTa5d6ff'Tb4b4b4]

T8b949e# class variables because PythonJavaClass class failed
T8b949e# to see them later in getters and setters
Te6edf3_error_callback Tff7b72= Tff7b72None
Te6edf3_result_callback Tff7b72= Tff7b72None
Te6edf3_partial_result_callback Tff7b72= Tff7b72None
Te6edf3_volume_callback Tff7b72= Tff7b72None

Tff7b72def Tff7b72__init__Tb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tffa657superTb4b4b4(Tb4b4b4)Tff7b72.Td2a8ff__init__Tb4b4b4(Tb4b4b4)

T8b949e# overwrite class variables in the object
Tff7b72selfTff7b72.Td2a8ff_error_callback Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ff_result_callback Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ff_partial_result_callback Tff7b72= Tff7b72None
Tff7b72selfTff7b72.Td2a8ff_volume_callback Tff7b72= Tff7b72None

T8b949e# error handling
Tf0883e@property
Tff7b72def Td2a8fferror_callbackTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ff_error_callback

Tf0883e@error_callbackTff7b72.Td2a8ffsetter
Tff7b72def Td2a8fferror_callbackTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3callbackTb4b4b4)Tb4b4b4:
T8b949e'''
Set error callback. It is called when error occurs.

:param callback: function with one parameter for error message
'''

Tff7b72selfTff7b72.Td2a8ff_error_callback Tff7b72= Te6edf3callback

T8b949e# result handling
Tf0883e@property
Tff7b72def Td2a8ffresult_callbackTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ff_result_callback

Tf0883e@result_callbackTff7b72.Td2a8ffsetter
Tff7b72def Td2a8ffresult_callbackTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3callbackTb4b4b4)Tb4b4b4:
T8b949e'''
Set result callback. It is called when results are received.

:param callback: function with one parameter for lists of strings
'''

Tff7b72selfTff7b72.Td2a8ff_result_callback Tff7b72= Te6edf3callback

Tf0883e@property
Tff7b72def Td2a8ffpartial_result_callbackTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ff_partial_result_callback

Tf0883e@partial_result_callbackTff7b72.Td2a8ffsetter
Tff7b72def Td2a8ffpartial_result_callbackTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3callbackTb4b4b4)Tb4b4b4:
T8b949e'''
Set partial result callback. It is called when partial results are
received while the listener is still in listening mode.

:param callback: function with one parameter for lists of strings
'''

Tff7b72selfTff7b72.Td2a8ff_partial_result_callback Tff7b72= Te6edf3callback

T8b949e# voice changes handling
Tf0883e@property
Tff7b72def Td2a8ffvolume_callbackTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72return Tff7b72selfTff7b72.Td2a8ff_volume_callback

Tf0883e@volume_callbackTff7b72.Td2a8ffsetter
Tff7b72def Td2a8ffvolume_callbackTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3callbackTb4b4b4)Tb4b4b4:
T8b949e'''
Set volume voice callback.

It is called when loudness of the voice changes.

:param callback: function with one parameter for volume RMS dB (float).
'''
Tff7b72selfTff7b72.Td2a8ff_volume_callback Tff7b72= Te6edf3callback

T8b949e# Implementation Java Interfaces
Tf0883e@java_methodTb4b4b4(Ta5d6ff'Ta5d6ff()VTa5d6ff'Tb4b4b4)
Tff7b72def Td2a8ffonBeginningOfSpeechTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72pass

Tf0883e@java_methodTb4b4b4(Ta5d6ff'Ta5d6ff([B)VTa5d6ff'Tb4b4b4)
Tff7b72def Td2a8ffonBufferReceivedTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3bufferTb4b4b4)Tb4b4b4:
Tff7b72pass

Tf0883e@java_methodTb4b4b4(Ta5d6ff'Ta5d6ff()VTa5d6ff'Tb4b4b4)
Tff7b72def Td2a8ffonEndOfSpeechTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72pass

Tf0883e@java_methodTb4b4b4(Ta5d6ff'Ta5d6ff(I)VTa5d6ff'Tb4b4b4)
Tff7b72def Td2a8ffonErrorTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3errorTb4b4b4)Tb4b4b4:
Te6edf3msg Tff7b72= Ta5d6ff'Ta5d6ff'
Tff7b72if Te6edf3error Tff7b72== Te6edf3SpeechRecognizerTff7b72.Td2a8ffERROR_AUDIOTb4b4b4:
Te6edf3msg Tff7b72= Ta5d6ff'Ta5d6ffaudioTa5d6ff'
Tff7b72if Te6edf3error Tff7b72== Te6edf3SpeechRecognizerTff7b72.Td2a8ffERROR_CLIENTTb4b4b4:
Te6edf3msg Tff7b72= Ta5d6ff'Ta5d6ffclientTa5d6ff'
Tff7b72if Te6edf3error Tff7b72== Te6edf3SpeechRecognizerTff7b72.Td2a8ffERROR_INSUFFICIENT_PERMISSIONSTb4b4b4:
Te6edf3msg Tff7b72= Ta5d6ff'Ta5d6ffinsufficient_permissionsTa5d6ff'
Tff7b72if Te6edf3error Tff7b72== Te6edf3SpeechRecognizerTff7b72.Td2a8ffERROR_NETWORKTb4b4b4:
Te6edf3msg Tff7b72= Ta5d6ff'Ta5d6ffnetworkTa5d6ff'
Tff7b72if Te6edf3error Tff7b72== Te6edf3SpeechRecognizerTff7b72.Td2a8ffERROR_NETWORK_TIMEOUTTb4b4b4:
Te6edf3msg Tff7b72= Ta5d6ff'Ta5d6ffnetwork_timeoutTa5d6ff'
Tff7b72if Te6edf3error Tff7b72== Te6edf3SpeechRecognizerTff7b72.Td2a8ffERROR_NO_MATCHTb4b4b4:
Te6edf3msg Tff7b72= Ta5d6ff'Ta5d6ffno_matchTa5d6ff'
Tff7b72if Te6edf3error Tff7b72== Te6edf3SpeechRecognizerTff7b72.Td2a8ffERROR_RECOGNIZER_BUSYTb4b4b4:
Te6edf3msg Tff7b72= Ta5d6ff'Ta5d6ffrecognizer_busyTa5d6ff'
Tff7b72if Te6edf3error Tff7b72== Te6edf3SpeechRecognizerTff7b72.Td2a8ffERROR_SERVERTb4b4b4:
Te6edf3msg Tff7b72= Ta5d6ff'Ta5d6ffserverTa5d6ff'
Tff7b72if Te6edf3error Tff7b72== Te6edf3SpeechRecognizerTff7b72.Td2a8ffERROR_SPEECH_TIMEOUTTb4b4b4:
Te6edf3msg Tff7b72= Ta5d6ff'Ta5d6ffspeech_timeoutTa5d6ff'

Tff7b72if Te6edf3msg Tff7b72and Tff7b72selfTff7b72.Td2a8fferror_callbackTb4b4b4:
Tff7b72selfTff7b72.Td2a8fferror_callbackTb4b4b4(Ta5d6ff'Ta5d6fferror:Ta5d6ff' Tff7b72+ Te6edf3msgTb4b4b4)

Tf0883e@java_methodTb4b4b4(Ta5d6ff'Ta5d6ff(ILandroid/os/Bundle;)VTa5d6ff'Tb4b4b4)
Tff7b72def Td2a8ffonEventTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3event_typeTb4b4b4, Te6edf3paramsTb4b4b4)Tb4b4b4:
Tff7b72pass

Tf0883e@java_methodTb4b4b4(Ta5d6ff'Ta5d6ff(Landroid/os/Bundle;)VTa5d6ff'Tb4b4b4)
Tff7b72def Td2a8ffonPartialResultsTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3resultsTb4b4b4)Tb4b4b4:
Te6edf3texts Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3matches Tff7b72= Te6edf3resultsTff7b72.Td2a8ffgetStringArrayListTb4b4b4(Te6edf3SpeechResultsTb4b4b4)
Tff7b72for Te6edf3match Tff7b72in Te6edf3matchesTff7b72.Td2a8fftoArrayTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3matchTb4b4b4, Tffa657bytesTb4b4b4)Tb4b4b4:
Te6edf3match Tff7b72= Te6edf3matchTff7b72.Td2a8ffdecodeTb4b4b4(Ta5d6ff'Ta5d6ffutf-8Ta5d6ff'Tb4b4b4)
Te6edf3textsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3matchTb4b4b4)

Tff7b72if Te6edf3texts Tff7b72and Tff7b72selfTff7b72.Td2a8ffpartial_result_callbackTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffpartial_result_callbackTb4b4b4(Te6edf3textsTb4b4b4)

Tf0883e@java_methodTb4b4b4(Ta5d6ff'Ta5d6ff(Landroid/os/Bundle;)VTa5d6ff'Tb4b4b4)
Tff7b72def Td2a8ffonReadyForSpeechTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3paramsTb4b4b4)Tb4b4b4:
Tff7b72pass

Tf0883e@java_methodTb4b4b4(Ta5d6ff'Ta5d6ff(Landroid/os/Bundle;)VTa5d6ff'Tb4b4b4)
Tff7b72def Td2a8ffonResultsTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3resultsTb4b4b4)Tb4b4b4:
Te6edf3texts Tff7b72= Tb4b4b4[Tb4b4b4]
Te6edf3matches Tff7b72= Te6edf3resultsTff7b72.Td2a8ffgetStringArrayListTb4b4b4(Te6edf3SpeechResultsTb4b4b4)
Tff7b72for Te6edf3match Tff7b72in Te6edf3matchesTff7b72.Td2a8fftoArrayTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72if Tffa657isinstanceTb4b4b4(Te6edf3matchTb4b4b4, Tffa657bytesTb4b4b4)Tb4b4b4:
Te6edf3match Tff7b72= Te6edf3matchTff7b72.Td2a8ffdecodeTb4b4b4(Ta5d6ff'Ta5d6ffutf-8Ta5d6ff'Tb4b4b4)
Te6edf3textsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3matchTb4b4b4)

Tff7b72if Te6edf3texts Tff7b72and Tff7b72selfTff7b72.Td2a8ffresult_callbackTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffresult_callbackTb4b4b4(Te6edf3textsTb4b4b4)

Tf0883e@java_methodTb4b4b4(Ta5d6ff'Ta5d6ff(F)VTa5d6ff'Tb4b4b4)
Tff7b72def Td2a8ffonRmsChangedTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3rmsdBTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72selfTff7b72.Td2a8ffvolume_callbackTb4b4b4:
Tff7b72selfTff7b72.Td2a8ffvolume_callbackTb4b4b4(Te6edf3rmsdBTb4b4b4)


Tff7b72class T56d364AndroidSpeechTb4b4b4(Te6edf3STTTb4b4b4)Tb4b4b4:
T8b949e'''
Android Speech Implementation.

Android class `SpeechRecognizer`'s listening deactivates automatically.

Class methods `_on_error()`, `_on_result()` listeners. You can find
documentation here:
https://developer.android.com/reference/android/speech/RecognitionListener
'''

Tff7b72def Td2a8ff_on_errorTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3msgTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8fferrorsTff7b72.Td2a8ffappendTb4b4b4(Te6edf3msgTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffstopTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ff_on_resultTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3messagesTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffresultsTff7b72.Td2a8ffextendTb4b4b4(Te6edf3messagesTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffstopTb4b4b4(Tb4b4b4)

Tff7b72def Td2a8ff_on_partialTb4b4b4(Tff7b72selfTb4b4b4, Te6edf3messagesTb4b4b4)Tb4b4b4:
Tff7b72selfTff7b72.Td2a8ffpartial_resultsTff7b72.Td2a8ffextendTb4b4b4(Te6edf3messagesTb4b4b4)

Tf0883e@run_on_ui_thread
Tff7b72def Td2a8ff_startTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Te6edf3intent Tff7b72= Te6edf3IntentTb4b4b4(Te6edf3RecognizerIntentTff7b72.Td2a8ffACTION_RECOGNIZE_SPEECHTb4b4b4)
Te6edf3intentTff7b72.Td2a8ffputExtraTb4b4b4(
Te6edf3RecognizerIntentTff7b72.Td2a8ffEXTRA_CALLING_PACKAGETb4b4b4,
Te6edf3activityTff7b72.Td2a8ffgetPackageNameTb4b4b4(Tb4b4b4)
Tb4b4b4)

T8b949e# language preferences
Te6edf3intentTff7b72.Td2a8ffputExtraTb4b4b4(
Te6edf3RecognizerIntentTff7b72.Td2a8ffEXTRA_LANGUAGE_PREFERENCETb4b4b4, Tff7b72selfTff7b72.Td2a8fflanguage
Tb4b4b4)
Te6edf3intentTff7b72.Td2a8ffputExtraTb4b4b4(
Te6edf3RecognizerIntentTff7b72.Td2a8ffEXTRA_LANGUAGE_MODELTb4b4b4,
Te6edf3RecognizerIntentTff7b72.Td2a8ffLANGUAGE_MODEL_WEB_SEARCH
Tb4b4b4)

T8b949e# results settings
Te6edf3intentTff7b72.Td2a8ffputExtraTb4b4b4(Te6edf3RecognizerIntentTff7b72.Td2a8ffEXTRA_MAX_RESULTSTb4b4b4, T79c0ff1000Tb4b4b4)
Te6edf3intentTff7b72.Td2a8ffputExtraTb4b4b4(Te6edf3RecognizerIntentTff7b72.Td2a8ffEXTRA_PARTIAL_RESULTSTb4b4b4, Tff7b72TrueTb4b4b4)
Tff7b72if Tff7b72selfTff7b72.Td2a8ffprefer_offlineTb4b4b4:
Te6edf3intentTff7b72.Td2a8ffputExtraTb4b4b4(Te6edf3RecognizerIntentTff7b72.Td2a8ffEXTRA_PREFER_OFFLINETb4b4b4, Tff7b72TrueTb4b4b4)

T8b949e# listener and callbacks
Te6edf3listener Tff7b72= Te6edf3SpeechListenerTb4b4b4(Tb4b4b4)
Te6edf3listenerTff7b72.Td2a8fferror_callback Tff7b72= Tff7b72selfTff7b72.Td2a8ff_on_error
Te6edf3listenerTff7b72.Td2a8ffresult_callback Tff7b72= Tff7b72selfTff7b72.Td2a8ff_on_result
Te6edf3listenerTff7b72.Td2a8ffpartial_result_callback Tff7b72= Tff7b72selfTff7b72.Td2a8ff_on_partial

T8b949e# create recognizer and start
Tff7b72selfTff7b72.Td2a8ffspeech Tff7b72= Te6edf3SpeechRecognizerTff7b72.Td2a8ffcreateSpeechRecognizerTb4b4b4(Te6edf3activityTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffspeechTff7b72.Td2a8ffsetRecognitionListenerTb4b4b4(Te6edf3listenerTb4b4b4)
Tff7b72selfTff7b72.Td2a8ffspeechTff7b72.Td2a8ffstartListeningTb4b4b4(Te6edf3intentTb4b4b4)

Tf0883e@run_on_ui_thread
Tff7b72def Td2a8ff_stopTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72if Tff7b72not Tff7b72selfTff7b72.Td2a8ffspeechTb4b4b4:
Tff7b72return

T8b949e# stop listening
Tff7b72selfTff7b72.Td2a8ffspeechTff7b72.Td2a8ffstopListeningTb4b4b4(Tb4b4b4)

T8b949e# free object
Tff7b72selfTff7b72.Td2a8ffspeechTff7b72.Td2a8ffdestroyTb4b4b4(Tb4b4b4)
Tff7b72selfTff7b72.Td2a8ffspeech Tff7b72= Tff7b72None

Tff7b72def Td2a8ff_existTb4b4b4(Tff7b72selfTb4b4b4)Tb4b4b4:
Tff7b72return Tffa657boolTb4b4b4(
Te6edf3SpeechRecognizerTff7b72.Td2a8ffisRecognitionAvailableTb4b4b4(Te6edf3activityTb4b4b4)
Tb4b4b4)


Tff7b72def Td2a8ffinstanceTb4b4b4(Tb4b4b4)Tb4b4b4:
Tff7b72return Te6edf3AndroidSpeechTb4b4b4(Tb4b4b4)


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────